package com.city.itis.action;

import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import com.city.itis.domain.Hobby;
import com.city.itis.service.HobbyService;
import com.city.itis.util.Constants;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;


/**
 * 爱好类别Action
 * @author WY
 *
 */

@Controller

public class HobbyAction extends ActionSupport implements ModelDriven<Hobby>
{

	private static final long serialVersionUID = 1L;	//系统自动生成的版本序列号
	
	private List<Hobby> hobbyList=null; //申明hobbyList对象
	private Hobby hobby=new Hobby();	//定义hobby对象
	private String command=null; //用于判断执行的动作
	private HobbyService hobbyService;	//声明hobbyService
	private String url=null;	//转向地址
	private String result=null;	//定义字符串类型变量，用户存放结果信息。
	
	/**
	 * 添加方法
	 * @return
	 */
	public String add() 
	{
		
		int flag=hobbyService.add(hobby);	//调用添加爱好信息方法
		
		//判断是否添加成功 (flag>0:表示添加成功，flag<0:表示添加失败)
		if(flag>0)
		{
	
			url="/hobby/list.action";	//设置转向地址
			
			return SUCCESS;
		}else
		{
			return ERROR;
		}
		
	}
	
	
	/**
	 * 修改方法
	 * @return
	 */
	public String modify() 
	{
		
		int flag=hobbyService.modify(hobby);	//调用修改会员方法
		
		//判断是否添加成功 (flag>0:表示添加成功，flag<0:表示添加失败)
		if(flag>0)
		{
			url="/hobby/list.action";	//设置转向地址
			
			return SUCCESS;
		}else
		{
			return ERROR;
		}
		
	}
	
	
	
	/**
	 * 删除方法
	 * @return
	 */
	public String delete() 
	{
		int flag=hobbyService.delete(hobby);	//调用删除会员信息方法
		
		//判断是否添加成功 (flag>0:表示添加成功，flag<0:表示添加失败)
		if(flag>0)
		{
			url="/hobby/list.action";	//设置转向地址
			
			return SUCCESS;
			
		}else
		{
			return ERROR;
		}
		
	}
	
	/**
	 * 根据爱好类别编号，查询爱好类别信息
	 * @return
	 */
	public String find() 
	{
		Integer id=hobby.getId();	//取得爱好类别编号
		
		//判断爱好类别编号是否为空
		if(id!=null) 
		{
			hobby=hobbyService.getHobbyById(id);	//根据爱好编号，调用查询爱好信息方法。
			
			//判断查询目的（修改、删除、明细）
			if(Constants.MODIFY.equals(command))
			{
				url="/hobby/hobby_modify.jsp";	//设置转向地址
				
				return SUCCESS;
				
			}else if(Constants.DELETE.equals(command)) 
			{
				url="/hobby/hobby_delete.jsp";	//设置转向地址
				
				return SUCCESS;
				
			}else
			{
				return NONE;
			}
		}
		return ERROR;
		
	
	}
	
	public String getHobbyByName()throws Exception
	{
		 String name = new String(hobby.getName().getBytes("iso-8859-1"), "UTF-8");   
			
		 Hobby h=hobbyService.getHobbyByName(name);	//根据爱好名称，调用查询爱好信息方法。
		 
		 if(h!=null)
		 {
			 System.out.println(h.getId());
			result="爱好名称已经存在";
		
		 }else
		 {
			result="恭喜您，该爱好名称可用。";
			 
		 }
		return SUCCESS;
	}
	
	/**
	 * 根据爱好类别编号，查询爱好类别信息
	 * @return
	 */
	public String detail() 
	{
		
		hobby=hobbyService.getHobbyById(hobby.getId());	//根据爱好编号，查询会员爱好信息方法。
		
		//判断爱好信息是否为null
		if(hobby!=null)
		{
			return SUCCESS;
			
		}else
		{
			return ERROR;
		}
		
		
		
	}

	/**
	 * 查询所有爱好类别信息
	 * @return
	 */
	public String list() 
	{
		hobbyList=hobbyService.findAll();	//调用查询所有爱好信息方法
		
		//判断hobbList是否为null
		if(hobbyList!=null)
		{
			url="/hobby/hobby_maint.jsp";	//设置转向地方
			
			return SUCCESS;
			
		}else 
		{
			return ERROR;
		}
	}
	

	//以下都是Get和Set方法
	public String getCommand()
	{
		return command;
	}


	public void setCommand(String command) 
	{
		this.command = command;
	}

	public HobbyService getHobbyService() 
	{
		return hobbyService;
	}

    @Resource
	public void setHobbyService(HobbyService hobbyService)
    {
		this.hobbyService = hobbyService;
	}

    
	public List<Hobby> getHobbyList() 
	{
		return hobbyList;
	}


	public void setHobbyList(List<Hobby> hobbyList) 
	{
		this.hobbyList = hobbyList;
	}


	public Hobby getHobby() 
	{
		return hobby;
	}


	public void setHobby(Hobby hobby) 
	{
		this.hobby = hobby;
	}


	@Override
	public Hobby getModel() 
	{
		return hobby;
	}


	public String getUrl() 
	{
		return url;
	}


	public void setUrl(String url) 
	{
		this.url = url;
	}


	public String getResult() {
		return result;
	}


	public void setResult(String result) {
		this.result = result;
	}
	
	
	
}
